JSON (JavaScript Object Notation) এবং C# (C-Sharp) এর মধ্যে ইন্টিগ্রেশন ডেটা আদান-প্রদানে একটি সাধারণ এবং কার্যকর পদ্ধতি। JSON একটি হালকা ডেটা বিনিময় ফরম্যাট, যা মানব-পঠনযোগ্য এবং মেশিনের জন্য সহজে পার্স করা যায়। C# একটি আধুনিক, অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ভাষা, যা .NET ফ্রেমওয়ার্কের সাথে ব্যবহৃত হয়। C# এবং JSON এর মধ্যে ডেটা আদান-প্রদান সহজভাবে Newtonsoft.Json (যা Json.NET নামে পরিচিত) বা .NET Core এর System.Text.Json লাইব্রেরি ব্যবহার করে সম্ভব।
এখানে, JSON এবং C# এর মধ্যে ইন্টিগ্রেশনের দুটি জনপ্রিয় পদ্ধতি আলোচনা করা হবে: Newtonsoft.Json এবং System.Text.Json।
1. Newtonsoft.Json (Json.NET) ব্যবহার করে JSON এবং C# Integration
Newtonsoft.Json বা Json.NET হল C# এ JSON ডেটা পার্সিং, সিরিয়ালাইজেশন এবং ডেসিরিয়ালাইজেশন করার জন্য একটি অত্যন্ত জনপ্রিয় লাইব্রেরি।
Maven Dependency for Newtonsoft.Json
প্রথমে, যদি আপনি NuGet প্যাকেজ ম্যানেজার ব্যবহার করেন, তাহলে আপনাকে Newtonsoft.Json ইনস্টল করতে হবে।
Install-Package Newtonsoft.Json
JSON থেকে C# অবজেক্টে কনভার্ট করা (Deserialization)
using Newtonsoft.Json;
using System;
public class Program
{
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void Main()
{
string json = "{\"Name\":\"John\", \"Age\":30}";
// JSON থেকে C# অবজেক্টে কনভার্ট করা
Person person = JsonConvert.DeserializeObject<Person>(json);
Console.WriteLine($"Name: {person.Name}");
Console.WriteLine($"Age: {person.Age}");
}
}
এখানে, JsonConvert.DeserializeObject ব্যবহার করে JSON ডেটাকে Person অবজেক্টে কনভার্ট করা হয়েছে।
C# অবজেক্ট থেকে JSON এ কনভার্ট করা (Serialization)
using Newtonsoft.Json;
using System;
public class Program
{
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void Main()
{
Person person = new Person { Name = "John", Age = 30 };
// C# অবজেক্ট থেকে JSON এ কনভার্ট করা
string json = JsonConvert.SerializeObject(person);
Console.WriteLine(json); // {"Name":"John","Age":30}
}
}
এখানে, JsonConvert.SerializeObject ব্যবহার করে Person অবজেক্টকে JSON ফরম্যাটে কনভার্ট করা হয়েছে।
2. System.Text.Json ব্যবহার করে JSON এবং C# Integration
System.Text.Json হল .NET Core এবং .NET Framework এর জন্য Microsoft এর নিজস্ব JSON লাইব্রেরি। এটি JSON ডেটা পার্সিং এবং সিরিয়ালাইজেশনের জন্য ব্যবহার করা হয়। এটি Newtonsoft.Json এর তুলনায় কিছুটা দ্রুত এবং হালকা।
.NET Core বা .NET Framework এ System.Text.Json এর জন্য NuGet ইনস্টলেশন
Install-Package System.Text.Json
JSON থেকে C# অবজেক্টে কনভার্ট করা (Deserialization)
using System;
using System.Text.Json;
public class Program
{
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void Main()
{
string json = "{\"Name\":\"John\", \"Age\":30}";
// JSON থেকে C# অবজেক্টে কনভার্ট করা
Person person = JsonSerializer.Deserialize<Person>(json);
Console.WriteLine($"Name: {person.Name}");
Console.WriteLine($"Age: {person.Age}");
}
}
এখানে, JsonSerializer.Deserialize ব্যবহার করে JSON ডেটাকে Person অবজেক্টে কনভার্ট করা হয়েছে।
C# অবজেক্ট থেকে JSON এ কনভার্ট করা (Serialization)
using System;
using System.Text.Json;
public class Program
{
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void Main()
{
Person person = new Person { Name = "John", Age = 30 };
// C# অবজেক্ট থেকে JSON এ কনভার্ট করা
string json = JsonSerializer.Serialize(person);
Console.WriteLine(json); // {"Name":"John","Age":30}
}
}
এখানে, JsonSerializer.Serialize ব্যবহার করে Person অবজেক্টকে JSON ফরম্যাটে কনভার্ট করা হয়েছে।
JSON এবং C# Integration এর সুবিধা
- সহজ ডেটা আদান-প্রদান: JSON একটি মানব-পঠনযোগ্য ফরম্যাট হওয়ায়, C# এর মাধ্যমে JSON ডেটা সহজে আদান-প্রদান করা যায়, বিশেষত ওয়েব অ্যাপ্লিকেশন এবং RESTful API তে।
- দ্রুত পার্সিং এবং সিরিয়ালাইজেশন: System.Text.Json লাইব্রেরি দ্রুত এবং হালকা, যা পারফরম্যান্সের জন্য উপকারী।
- প্রচুর লাইব্রেরি এবং টুলস: Newtonsoft.Json এবং System.Text.Json এর মতো শক্তিশালী লাইব্রেরি সহজেই JSON ডেটা প্রসেস করতে পারে।
- ভাল কাস্টমাইজেশন এবং ফিচার: Newtonsoft.Json এর মাধ্যমে JSON সিরিয়ালাইজেশন কাস্টমাইজ করা সহজ, যেমন কাস্টম কনভার্টার এবং ফিল্ড নেম পরিবর্তন করা।
JSON এবং C# এর মধ্যে ইন্টিগ্রেশন একটি অত্যন্ত কার্যকরী পদ্ধতি, যা ওয়েব অ্যাপ্লিকেশন, মোবাইল অ্যাপ্লিকেশন, এবং ডিস্ট্রিবিউটেড সিস্টেমে ডেটা আদান-প্রদান সহজ করে। Newtonsoft.Json এবং System.Text.Json দুটি জনপ্রিয় এবং শক্তিশালী লাইব্রেরি, যা JSON ডেটাকে সঠিকভাবে প্রোসেস এবং কনভার্ট করতে সহায়তা করে।
JSON (JavaScript Object Notation) একটি হালকা ও সহজ ডেটা বিনিময় ফরম্যাট, যা বিভিন্ন প্রোগ্রামিং ভাষার মধ্যে ডেটা আদান-প্রদান করতে ব্যবহৃত হয়। C# এ JSON ডেটা প্রক্রিয়াজাত করতে জনপ্রিয় লাইব্রেরি Newtonsoft.Json (বা Json.NET) ব্যবহার করা হয়। এটি JSON ডেটা পার্স করা, JSON থেকে C# অবজেক্ট তৈরি করা, এবং C# অবজেক্টকে JSON এ রূপান্তর করতে সহায়ক।
C# এ JSON Data প্রক্রিয়াজাত করার জন্য প্রয়োজনীয় লাইব্রেরি
Newtonsoft.Json লাইব্রেরি JSON ডেটা প্রক্রিয়াজাত করতে সবচেয়ে জনপ্রিয় এবং সহজভাবে ব্যবহৃত হয়। আপনি NuGet প্যাকেজ ম্যানেজার ব্যবহার করে এটি ইনস্টল করতে পারেন।
Newtonsoft.Json ইনস্টল করা
আপনার C# প্রজেক্টে Newtonsoft.Json ইনস্টল করতে নিচের NuGet প্যাকেজ ব্যবহার করুন:
Install-Package Newtonsoft.Json
C# এ JSON ডেটা পার্সিং এবং সিরিয়ালাইজেশন উদাহরণ
1. JSON থেকে C# অবজেক্টে ডেটা পার্স করা (Deserialization)
JSON ডেটাকে C# অবজেক্টে রূপান্তর করার জন্য JsonConvert.DeserializeObject() মেথড ব্যবহার করা হয়।
উদাহরণ: JSON থেকে C# অবজেক্টে কনভার্ট করা
using Newtonsoft.Json;
using System;
class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
class Program
{
static void Main(string[] args)
{
// JSON String
string json = "{\"Name\":\"John\", \"Age\":30}";
// JSON থেকে C# অবজেক্টে ডেটা পার্স করা
Person person = JsonConvert.DeserializeObject<Person>(json);
// C# অবজেক্টের মান প্রদর্শন
Console.WriteLine("Name: " + person.Name); // John
Console.WriteLine("Age: " + person.Age); // 30
}
}
এখানে:
- JsonConvert.DeserializeObject() মেথডটি JSON ডেটাকে Person ক্লাসের অবজেক্টে রূপান্তরিত করে।
2. C# অবজেক্ট থেকে JSON ডেটা তৈরি করা (Serialization)
C# অবজেক্টকে JSON ফরম্যাটে রূপান্তর করার জন্য JsonConvert.SerializeObject() মেথড ব্যবহার করা হয়।
উদাহরণ: C# অবজেক্ট থেকে JSON তৈরি করা
using Newtonsoft.Json;
using System;
class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
class Program
{
static void Main(string[] args)
{
// C# অবজেক্ট
Person person = new Person()
{
Name = "John",
Age = 30
};
// C# অবজেক্ট থেকে JSON এ কনভার্ট করা
string json = JsonConvert.SerializeObject(person);
// JSON আউটপুট
Console.WriteLine(json); // {"Name":"John","Age":30}
}
}
এখানে:
- JsonConvert.SerializeObject() মেথডটি Person অবজেক্টকে JSON ফরম্যাটে রূপান্তরিত করে।
3. JSON এ Nested Objects
JSON ডেটার মধ্যে nested objects থাকতে পারে, এবং C# এ তাদেরও সহজভাবে প্রক্রিয়াজাত করা যায়।
উদাহরণ: Nested JSON পার্সিং
using Newtonsoft.Json;
using System;
class Address
{
public string Street { get; set; }
public string City { get; set; }
}
class Person
{
public string Name { get; set; }
public int Age { get; set; }
public Address Address { get; set; } // Nested Object
}
class Program
{
static void Main(string[] args)
{
// JSON String with Nested Object
string json = "{\"Name\":\"John\", \"Age\":30, \"Address\": {\"Street\":\"123 Main St\", \"City\":\"New York\"}}";
// JSON থেকে C# অবজেক্টে ডেটা পার্স করা
Person person = JsonConvert.DeserializeObject<Person>(json);
// Nested Object এর মান প্রদর্শন
Console.WriteLine("Name: " + person.Name); // John
Console.WriteLine("Age: " + person.Age); // 30
Console.WriteLine("Street: " + person.Address.Street); // 123 Main St
Console.WriteLine("City: " + person.Address.City); // New York
}
}
এখানে, Address ক্লাসটি Person ক্লাসের মধ্যে একটি nested object হিসেবে ব্যবহৃত হয়েছে। JSON ডেটায় Address নামক অবজেক্টটি রয়েছে এবং C# এ এটি সহজেই প্রক্রিয়াজাত করা হয়েছে।
4. JSON ফাইল থেকে ডেটা পার্স করা
JSON ফাইল থেকে ডেটা পার্স করার জন্য C# এ File.ReadAllText() মেথড ব্যবহার করা যেতে পারে।
উদাহরণ: JSON ফাইল থেকে ডেটা পার্স করা
using Newtonsoft.Json;
using System;
using System.IO;
class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
class Program
{
static void Main(string[] args)
{
// JSON ফাইল থেকে ডেটা পড়া
string json = File.ReadAllText("person.json");
// JSON থেকে C# অবজেক্টে ডেটা পার্স করা
Person person = JsonConvert.DeserializeObject<Person>(json);
// C# অবজেক্টের মান প্রদর্শন
Console.WriteLine("Name: " + person.Name);
Console.WriteLine("Age: " + person.Age);
}
}
এখানে, person.json ফাইলটি থেকে JSON ডেটা পড়ে সেটিকে Person অবজেক্টে রূপান্তর করা হয়েছে।
JSON এবং C# এর মধ্যে ডেটা আদান-প্রদান এর সুবিধা
- সহজ এবং দ্রুত প্রক্রিয়াজাতকরণ: Newtonsoft.Json লাইব্রেরি ব্যবহার করে C# এ JSON ডেটা সহজেই পার্স এবং সিরিয়ালাইজ করা যায়।
- মানব-পঠনযোগ্য ফরম্যাট: JSON ফরম্যাটটি সহজে পড়া যায় এবং ডেভেলপাররা সহজে JSON ডেটার সাথে কাজ করতে পারেন।
- ডেটার কাঠামো বজায় রাখা: C# অবজেক্টগুলো JSON ফরম্যাটে রূপান্তর করার মাধ্যমে ডেটার কাঠামো অপরিবর্তিত থাকে, ফলে ডেটার রক্ষণাবেক্ষণ সহজ হয়।
C# এ JSON ডেটা প্রক্রিয়াজাত করার মাধ্যমে আপনি সহজে ওয়েব অ্যাপ্লিকেশন, REST API, এবং অন্যান্য সিস্টেমগুলির মধ্যে ডেটা বিনিময় করতে পারবেন। Newtonsoft.Json লাইব্রেরি এর কার্যকারিতা এবং ব্যবহারিক উপযোগিতার জন্য সবচেয়ে জনপ্রিয় একটি টুল হিসেবে পরিচিত।
Newtonsoft.Json লাইব্রেরিটি মূলত .NET (C#) প্ল্যাটফর্মে JSON ডেটা পার্সিং এবং হ্যান্ডলিংয়ের জন্য খুবই জনপ্রিয়। তবে, Java তে এটি সরাসরি ব্যবহৃত হয় না। Java প্ল্যাটফর্মে JSON পার্সিংয়ের জন্য জনপ্রিয় লাইব্রেরিগুলি হলো Jackson, Gson, এবং org.json।
তবে, যদি আপনি .NET প্ল্যাটফর্ম ব্যবহার করেন এবং Newtonsoft.Json ব্যবহার করতে চান, তাহলে আপনি C# বা .NET Core অ্যাপ্লিকেশনে JSON ডেটা পার্সিং করতে পারবেন।
.NET/C# প্ল্যাটফর্মে Newtonsoft.Json লাইব্রেরি ব্যবহার
যেহেতু Newtonsoft.Json Java এর জন্য নয়, তবে এখানে .NET প্ল্যাটফর্মে JSON পার্সিং করার একটি উদাহরণ দেওয়া হলো।
Newtonsoft.Json লাইব্রেরি যোগ করা
NuGet Package Manager এর মাধ্যমে Newtonsoft.Json ইনস্টল করতে হবে। আপনি কমান্ড লাইনে বা Visual Studio তে NuGet প্যাকেজ ম্যানেজার ব্যবহার করতে পারেন।
Install-Package Newtonsoft.Json
JSON পার্সিং (Serialization এবং Deserialization) উদাহরণ
স্টেপ ১: JSON ডেটা (Serialization)
using Newtonsoft.Json;
using System;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
class Program
{
static void Main(string[] args)
{
Person person = new Person()
{
Name = "John",
Age = 30
};
// Serialize the object to JSON string
string json = JsonConvert.SerializeObject(person);
Console.WriteLine(json);
}
}
এখানে JsonConvert.SerializeObject() ব্যবহার করে Person অবজেক্টকে JSON ফরম্যাটে কনভার্ট করা হয়েছে। আউটপুট হবে:
{"Name":"John","Age":30}
স্টেপ ২: JSON থেকে C# অবজেক্টে (Deserialization)
using Newtonsoft.Json;
using System;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
class Program
{
static void Main(string[] args)
{
string json = "{\"Name\":\"John\",\"Age\":30}";
// Deserialize JSON to object
Person person = JsonConvert.DeserializeObject<Person>(json);
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
}
}
এখানে JsonConvert.DeserializeObject<T>() ব্যবহার করা হয়েছে JSON ডেটাকে C# অবজেক্টে কনভার্ট করার জন্য। আউটপুট হবে:
Name: John, Age: 30
সারাংশ
Newtonsoft.Json লাইব্রেরিটি .NET (C#) প্ল্যাটফর্মে JSON পার্সিংয়ের জন্য একটি শক্তিশালী টুল, যা Serialization এবং Deserialization এর মাধ্যমে JSON ডেটাকে সহজেই অবজেক্টে কনভার্ট করে এবং অবজেক্ট থেকে JSON তৈরি করতে সাহায্য করে। যদিও এটি Java এর জন্য ব্যবহারযোগ্য নয়, তবে .NET/C# ডেভেলপারদের মধ্যে এটি একটি জনপ্রিয় লাইব্রেরি। Java প্ল্যাটফর্মে JSON পার্সিংয়ের জন্য অন্যান্য লাইব্রেরি যেমন Jackson, Gson, বা org.json ব্যবহার করা হয়।
C# (C Sharp) একটি প্রোগ্রামিং ভাষা যা .NET ফ্রেমওয়ার্কের অংশ। C#-এ JSON ডেটা তৈরি করার প্রক্রিয়া বা serialization খুবই গুরুত্বপূর্ণ, কারণ এটি ওয়েব অ্যাপ্লিকেশন এবং সার্ভিসের মধ্যে ডেটা আদান-প্রদান সহজ করে। C# এর Object থেকে JSON তৈরি করার জন্য সাধারণত Newtonsoft.Json (যা Json.NET নামে পরিচিত) বা System.Text.Json ব্যবহার করা হয়।
C# এর Object থেকে JSON তৈরি করার প্রক্রিয়া
Serialization এর মাধ্যমে একটি C# অবজেক্টকে JSON ফরম্যাটে রূপান্তর করা হয়। এতে আমরা একটি C# অবজেক্টের প্রপার্টি বা ফিল্ডের মান JSON ফরম্যাটে তৈরি করতে পারি।
১. Newtonsoft.Json ব্যবহার করে C# Object থেকে JSON তৈরি করা
Newtonsoft.Json বা Json.NET C# এ JSON অপারেশন করার জন্য একটি জনপ্রিয় লাইব্রেরি। এটি C# অবজেক্টকে JSON এ রূপান্তর করতে খুবই সহজ এবং কার্যকরী।
Newtonsoft.Json লাইব্রেরি ইনস্টল করা:
NuGet প্যাকেজ ম্যানেজার ব্যবহার করে Newtonsoft.Json ইনস্টল করতে হবে:
Install-Package Newtonsoft.Json
উদাহরণ:
ধরা যাক, আমাদের একটি Person ক্লাস রয়েছে, যেটি JSON ফরম্যাটে রূপান্তর করতে হবে।
using Newtonsoft.Json;
using System;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public class Program
{
public static void Main()
{
// C# অবজেক্ট তৈরি করা
Person person = new Person
{
Name = "John Doe",
Age = 30
};
// C# অবজেক্ট থেকে JSON তৈরি করা
string jsonString = JsonConvert.SerializeObject(person);
// JSON আউটপুট প্রদর্শন
Console.WriteLine(jsonString);
}
}
আউটপুট:
{"Name":"John Doe","Age":30}
এখানে, JsonConvert.SerializeObject মেথডটি C# অবজেক্টকে JSON স্ট্রিং এ রূপান্তর করেছে।
২. System.Text.Json ব্যবহার করে C# Object থেকে JSON তৈরি করা
System.Text.Json হল Microsoft-এর তৈরি একটি লাইব্রেরি, যা .NET Core 3.0 এবং পরবর্তী সংস্করণে অন্তর্ভুক্ত করা হয়েছে। এটি Newtonsoft.Json এর তুলনায় দ্রুত এবং হালকা।
উদাহরণ:
using System;
using System.Text.Json;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public class Program
{
public static void Main()
{
// C# অবজেক্ট তৈরি করা
Person person = new Person
{
Name = "John Doe",
Age = 30
};
// C# অবজেক্ট থেকে JSON তৈরি করা
string jsonString = JsonSerializer.Serialize(person);
// JSON আউটপুট প্রদর্শন
Console.WriteLine(jsonString);
}
}
আউটপুট:
{"Name":"John Doe","Age":30}
এখানে, JsonSerializer.Serialize মেথডটি C# অবজেক্টকে JSON স্ট্রিং এ রূপান্তর করেছে।
JSON Serialization Customization
যখন C# অবজেক্ট থেকে JSON তৈরি করা হয়, তখন কিছু ক্ষেত্রে আমরা JSON আউটপুট কাস্টমাইজ করতে চাই। যেমন:
- Property Naming: কিছু ক্ষেত্রে প্রপার্টি নাম পরিবর্তন করতে হতে পারে।
- Ignoring Properties: কিছু প্রপার্টি JSON আউটপুটে অন্তর্ভুক্ত করতে চাই না।
১. Property Naming Customization
Newtonsoft.Json এবং System.Text.Json উভয় লাইব্রেরি তে প্রপার্টির নাম কাস্টমাইজ করা সম্ভব।
Newtonsoft.Json ব্যবহার করে:
using Newtonsoft.Json;
using System;
public class Person
{
[JsonProperty("full_name")] // Custom name for the property
public string Name { get; set; }
[JsonProperty("years_old")] // Custom name for the property
public int Age { get; set; }
}
public class Program
{
public static void Main()
{
Person person = new Person
{
Name = "John Doe",
Age = 30
};
string jsonString = JsonConvert.SerializeObject(person);
Console.WriteLine(jsonString);
}
}
আউটপুট:
{"full_name":"John Doe","years_old":30}
System.Text.Json ব্যবহার করে:
using System;
using System.Text.Json;
using System.Text.Json.Serialization;
public class Person
{
[JsonPropertyName("full_name")] // Custom name for the property
public string Name { get; set; }
[JsonPropertyName("years_old")] // Custom name for the property
public int Age { get; set; }
}
public class Program
{
public static void Main()
{
Person person = new Person
{
Name = "John Doe",
Age = 30
};
string jsonString = JsonSerializer.Serialize(person);
Console.WriteLine(jsonString);
}
}
আউটপুট:
{"full_name":"John Doe","years_old":30}
২. Ignoring Properties
কোনো প্রপার্টি JSON এ না আনার জন্য [JsonIgnore] অ্যাট্রিবিউট ব্যবহার করা যায়।
using Newtonsoft.Json;
using System;
public class Person
{
public string Name { get; set; }
[JsonIgnore] // Ignore this property in JSON output
public int Age { get; set; }
}
public class Program
{
public static void Main()
{
Person person = new Person
{
Name = "John Doe",
Age = 30
};
string jsonString = JsonConvert.SerializeObject(person);
Console.WriteLine(jsonString);
}
}
আউটপুট:
{"Name":"John Doe"}
সারাংশ
C# এ Object Serialization একটি গুরুত্বপূর্ণ প্রক্রিয়া, যার মাধ্যমে C# অবজেক্টগুলোকে JSON ফরম্যাটে রূপান্তর করা হয়। Newtonsoft.Json এবং System.Text.Json হল C# এ JSON তৈরি করার জন্য দুটি জনপ্রিয় লাইব্রেরি। এই লাইব্রেরিগুলির সাহায্যে আমরা সহজেই C# অবজেক্টকে JSON-এ রূপান্তর করতে পারি, এবং JSON ডেটাকে কাস্টমাইজ করতে পারি যেমন প্রপার্টি নাম পরিবর্তন, প্রপার্টি উপেক্ষা করা, ইত্যাদি।
JSON (JavaScript Object Notation) থেকে C# Object এ রূপান্তর করার প্রক্রিয়াটি সাধারণত Deserialization নামে পরিচিত। এটি একটি প্রক্রিয়া যেখানে JSON ডেটাকে C# ক্লাসে কনভার্ট করা হয়, যাতে C# প্রোগ্রাম থেকে JSON ডেটা ব্যবহৃত হতে পারে। C# এ JSON ডেটা ডেসিরিয়ালাইজ (Deserialize) করতে Newtonsoft.Json বা System.Text.Json লাইব্রেরি ব্যবহার করা হয়।
এখানে আমরা Newtonsoft.Json লাইব্রেরি ব্যবহার করে JSON থেকে C# Object এ রূপান্তর (Deserialization) করার প্রক্রিয়া দেখবো।
Newtonsoft.Json ব্যবহার করে JSON থেকে C# Object এ রূপান্তর
১. Newtonsoft.Json লাইব্রেরি যোগ করা
প্রথমে আপনাকে Newtonsoft.Json লাইব্রেরি আপনার প্রজেক্টে যোগ করতে হবে। যদি আপনি NuGet ব্যবহার করেন, তাহলে নিম্নলিখিত কমান্ড দিয়ে লাইব্রেরিটি ইনস্টল করতে পারবেন:
Install-Package Newtonsoft.Json
২. C# ক্লাস তৈরি করা
আপনি যেই JSON ডেটা রূপান্তর করতে চান, তার সাথে সঙ্গতিপূর্ণ একটি C# ক্লাস তৈরি করতে হবে। ধরুন, আমাদের একটি JSON ডেটা রয়েছে যেখানে নাম এবং বয়সের তথ্য রয়েছে:
{
"name": "Alice",
"age": 28
}
এটি C# তে একটি ক্লাসে রূপান্তর করার জন্য নিচে একটি C# ক্লাস তৈরি করতে হবে:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
৩. JSON থেকে C# Object এ রূপান্তর (Deserialization)
এখন, আমরা Newtonsoft.Json ব্যবহার করে JSON ডেটাকে C# অবজেক্টে রূপান্তর করতে পারি। নিচে একটি উদাহরণ দেখানো হয়েছে:
using Newtonsoft.Json;
using System;
class Program
{
static void Main()
{
// JSON ডেটা
string json = "{\"name\":\"Alice\",\"age\":28}";
// JSON থেকে C# অবজেক্টে রূপান্তর (Deserialization)
Person person = JsonConvert.DeserializeObject<Person>(json);
// C# অবজেক্টের ডেটা প্রিন্ট করা
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
}
}
এখানে:
JsonConvert.DeserializeObject<Person>(json)মেথডটি JSON ডেটা কে C# ক্লাসPersonএ রূপান্তর করবে।- JSON ডেটা সঠিকভাবে C# অবজেক্টে রূপান্তর হয়ে যাবে, এবং পরে সেই অবজেক্ট থেকে প্রপার্টি অ্যাক্সেস করা যাবে।
৪. আউটপুট
উপরোক্ত কোডটি চালানোর পর, আউটপুট হবে:
Name: Alice, Age: 28
এখানে JSON ডেটা সঠিকভাবে C# অবজেক্টে রূপান্তরিত হয়ে আউটপুট প্রদর্শিত হয়েছে।
System.Text.Json ব্যবহার করে JSON থেকে C# Object এ রূপান্তর
C# 8.0 এবং তার পরবর্তী সংস্করণে, .NET Core এ System.Text.Json লাইব্রেরি অন্তর্ভুক্ত করা হয়েছে, যা JSON প্রোসেসিংয়ের জন্য একটি বিল্ট-ইন লাইব্রেরি। এই লাইব্রেরি ব্যবহার করেও JSON থেকে C# Object এ রূপান্তর করা সম্ভব।
১. System.Text.Json ব্যবহার করে JSON থেকে C# Object এ রূপান্তর
using System;
using System.Text.Json;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
class Program
{
static void Main()
{
// JSON ডেটা
string json = "{\"name\":\"Alice\",\"age\":28}";
// JSON থেকে C# অবজেক্টে রূপান্তর (Deserialization)
Person person = JsonSerializer.Deserialize<Person>(json);
// C# অবজেক্টের ডেটা প্রিন্ট করা
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
}
}
এখানে:
JsonSerializer.Deserialize<Person>(json)মেথডটি JSON ডেটাকে C# অবজেক্টে রূপান্তর করবে।
২. আউটপুট
উপরোক্ত কোডটি চালানোর পর, আউটপুট হবে:
Name: Alice, Age: 28
JSON থেকে C# Object এ রূপান্তর করার সময় কিছু গুরুত্বপূর্ণ বিষয়
Property Naming: যদি JSON এর কীগুলোর নাম C# ক্লাসের প্রপার্টি নামের সাথে মেলে না, তবে আপনি
[JsonProperty]বা[JsonPropertyName]অ্যাট্রিবিউট ব্যবহার করতে পারেন (Newtonsoft.Json বা System.Text.Json এ)।উদাহরণ:
public class Person { [JsonProperty("name")] // Newtonsoft.Json এর জন্য public string Name { get; set; } [JsonProperty("age")] public int Age { get; set; } }- Error Handling: JSON ডেটা যখন C# অবজেক্টে রূপান্তরিত হয়, তখন যদি কোনো সমস্যা হয়, যেমন ডেটা ফর্ম্যাট ভুল, তাহলে আপনি try-catch ব্লক ব্যবহার করে এরর হ্যান্ডলিং করতে পারেন।
সারাংশ
JSON থেকে C# Object এ রূপান্তর (Deserialization) করার জন্য Newtonsoft.Json এবং System.Text.Json দুটি শক্তিশালী এবং জনপ্রিয় লাইব্রেরি রয়েছে। Newtonsoft.Json লাইব্রেরি বেশি ব্যবহৃত হলেও, .NET Core-এ System.Text.Json একটি বিল্ট-ইন অপশন হিসেবে আসে। JSON ডেটা থেকে C# অবজেক্ট তৈরি করতে DeserializeObject() বা JsonSerializer.Deserialize() মেথড ব্যবহার করা হয়, এবং আপনি প্রপার্টি নাম মেলানোর জন্য JsonProperty অ্যাট্রিবিউট ব্যবহার করতে পারেন।
Read more